/**
 * Klasse Student klasse tbv. kantine simulatie, welke studenten definiëerd
 * @author (Stephan Veenstra, Michel Jansma) 
 * @version (1.8)
 */

public class Student extends Person {

    //Instantie variabelen definiëren van het type int
    private int number;
    //Instantie variabelen definiëren van het type String
    private String studyDirection;

    /**
     * @method Student
     * @params null
     * @info   Constructor van Student class, welke geen parameters meekrijgt
     * @return null
     */
    public Student() {
        //Call to super class
        super(307030, "Ben", "Berends", 'M', new int[]{ 18, 9, 1992 });
        //Initialiseer instantie variabele number
        this.setStudentNumber(1000);
        //Initialiseer instantie variabele studyDirection
        this.setStudyDirection("Informatica");
    }

    /**
     * @method Student
     * @params <int> BSN, <String> firstname, <String> lastname, <char> gender, <int[]> dateOfBirth
     * @info   Overloaded constructor van Student class
     * @return null
     */
    public Student(int BSN, String firstname, String lastname, char gender, int[]dateOfBirth, int number, String studyDirection) {
        //Call to super class
        super(BSN, firstname, lastname, gender, dateOfBirth);
        //Initialiseer instantie variabele number
        this.setStudentNumber(number);
        //Initialiseer instantie variabele studyDirection
        this.setStudyDirection(studyDirection);
    }
    
    /**
     * SETTER METHODES
     */
    
    /**
     * @method setStudentNumber
     * @params <int> number
     * @info   Initialiseer instantie variabele number
     * @return null
     */
    public void setStudentNumber(int number) {
        this.number = number;
    }
    
    /**
     * @method setStudyDirection
     * @params <String> studyDirection
     * @info   Initialiseer instantie variabele studyDirection
     * @return null
     */
    public void setStudyDirection(String studyDirection) {
        this.studyDirection = studyDirection;
    }
    
    /**
     * GETTER METHODES
     */
    
    /**
     * @method getStudentNumber
     * @params null
     * @info   Retourneer instantie variabele studyDirection
     * @return <int> number
     */
    public int getStudentNumber() {
        return this.number;
    }
    
    /**
     * @method getStudyDirection
     * @params null
     * @info   Retourneer instantie variabele studyDirection
     * @return <String> studyDirection
     */
    public String getStudyDirection() {
        return this.studyDirection;
    }
    
    /**
     * @method getData
     * @params null
     * @info   Toon specifieke student data
     * @return null
     */
    @Override
    public void getData() {
        //Toon specifieke student data
        System.out.println(
            "S.Nummer       : " + this.getStudentNumber() + "\n" +
            "Studierichting : " + this.getStudyDirection()
        );
    } 
    
    
}
